package com.redepronik.negosys.seguridad.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.redepronik.negosys.seguridad.dao.BitacoraDao;
import com.redepronik.negosys.seguridad.service.UsuarioService;

@Component
@Aspect
public class BitacoraAspect {

	@Autowired
	public BitacoraDao bitacoraDao;

	@Autowired
	public UsuarioService usuarioService;

	// "execution(public * com.redepronik.negosys.invfac.service..*.obtener(..))"
	// "execution(public * com.redepronik.negosys.rrhh.service..*.obtener(..))"

	@After("execution(public * com.redepronik.negosys.invfac.service..*.insertar(..)) "
			+ "|| execution(public * com.redepronik.negosys.invfac.service..*.actualizar(..)) "
			+ "|| execution(public * com.redepronik.negosys.invfac.service..*.eliminar(..)) "
			+ "|| execution(public * com.redepronik.negosys.rrhh.service..*.insertar(..)) "
			+ "|| execution(public * com.redepronik.negosys.rrhh.service..*.actualizar(..)) "
			+ "|| execution(public * com.redepronik.negosys.rrhh.service..*.eliminar(..)) ")
	public void auditarInvfac(JoinPoint joinPoint) {
		// Usuario usuario =
		// usuarioService.obtenerPorLoginSimple(SecurityContextHolder
		// .getContext().getAuthentication().getName());
		// Date date = new java.util.Date();
		// Bitacora bitacora = new Bitacora();
		// bitacora.setFecha(new Timestamp(date.getTime()));
		// bitacora.setMetodo(joinPoint.getSignature().toString());
		// bitacora.setUsuario(usuario);
		// bitacoraDao.insertar(bitacora);
	}
}